﻿namespace MyTRCP.Common.Models
{
    public class RegionChannelPayload
    {
        public byte RegionId { get; set; }
        public byte ChId { get; set; }
        public ChannelInfo ChannelInfo { get; set; }
        public RegionChannelPayload(byte regionId, byte chId, ChannelInfo channelInfo)
        {
            RegionId = regionId;
            ChId = chId;
            ChannelInfo = channelInfo;
        }

        public RegionChannelPayload(byte[] data)
        {
            if (data.Length < 26)
                throw new ArgumentException("字节数组长度过小（26）", nameof(data));
            RegionId = data[0];
            ChId = data[1];
            byte[] chData = new byte[data.Length - 2];
            Array.Copy(data, 2, chData, 0, chData.Length);
            ChannelInfo = new ChannelInfo(chData);
        }
        public byte[] WriteToBytes()
        {
            byte[] bytes = new byte[26];
            bytes[0] = RegionId;
            bytes[1] = ChId;
            byte[] ciBytes = ChannelInfo.WriteToBytes();
            Array.Copy(ciBytes, 0, bytes, 2, ciBytes.Length);
            return bytes;
        }
    }
}